<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
InternetDomainName (Guava: Google Core Libraries for Java - r09)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="InternetDomainName (Guava: Google Core Libraries for Java - r09)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/google/common/net/InetAddresses.TeredoInfo.html" title="class in com.google.common.net"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/google/common/net/InternetDomainName.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="InternetDomainName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.google.common.net</FONT>
<BR>
Class InternetDomainName</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.google.common.net.InternetDomainName</B>
</PRE>
<HR>
<DL>
<DT><PRE><FONT SIZE="-1"><A HREF="../../../../com/google/common/annotations/Beta.html" title="annotation in com.google.common.annotations">@Beta</A>
<A HREF="../../../../com/google/common/annotations/GwtCompatible.html" title="annotation in com.google.common.annotations">@GwtCompatible</A>(<A HREF="../../../../com/google/common/annotations/GwtCompatible.html#emulated()">emulated</A>=true)
</FONT>public class <B>InternetDomainName</B><DT>extends <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>

<P>
An immutable well-formed internet domain name, such as <code>com</code> or <code>foo.co.uk</code>. Only syntactic analysis is performed; no DNS lookups or other
 network interactions take place. Thus there is no guarantee that the domain
 actually exists on the internet.

 <p>One common use of this class is to determine whether a given string is
 likely to represent an addressable domain on the web -- that is, for a
 candidate string <code>"xxx"</code>, might browsing to <code>"http://xxx/"</code>
 result in a webpage being displayed? In the past, this test was frequently
 done by determining whether the domain ended with a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A> but was not itself a public suffix. However,
 this test is no longer accurate. There are many domains which are both public
 suffixes and addressable as hosts; <code>"uk.com"</code> is one example. As a
 result, the only useful test to determine if a domain is a plausible web host
 is <A HREF="../../../../com/google/common/net/InternetDomainName.html#hasPublicSuffix()"><CODE>hasPublicSuffix()</CODE></A>. This will return <code>true</code> for many domains
 which (currently) are not hosts, such as <code>"com"</code>), but given that any
 public suffix may become a host without warning, it is better to err on the
 side of permissiveness and thus avoid spurious rejection of valid sites.

 <p>During construction, names are normalized in two ways:
 <ol>
 <li>ASCII uppercase characters are converted to lowercase.
 <li>Unicode dot separators other than the ASCII period (<code>'.'</code>) are
 converted to the ASCII period.
 </ol>
 The normalized values will be returned from <A HREF="../../../../com/google/common/net/InternetDomainName.html#name()"><CODE>name()</CODE></A> and
 <A HREF="../../../../com/google/common/net/InternetDomainName.html#parts()"><CODE>parts()</CODE></A>, and will be reflected in the result of
 <A HREF="../../../../com/google/common/net/InternetDomainName.html#equals(java.lang.Object)"><CODE>equals(Object)</CODE></A>.

 <p><a href="http://en.wikipedia.org/wiki/Internationalized_domain_name">
 internationalized domain names</a> such as <code>网络.cn</code> are supported, as
 are the equivalent <a
 href="http://en.wikipedia.org/wiki/Internationalized_domain_name">IDNA
 Punycode-encoded</a> versions.
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>5</DD>
<DT><B>Author:</B></DT>
  <DD>Craig Berry</DD>
</DL>
<HR>

<P>

<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#child(java.lang.String)">child</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;leftParts)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates and returns a new <code>InternetDomainName</code> by prepending the
 argument and a dot to the current name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;object)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether some other object is "equal to" this one.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#fromLenient(java.lang.String)">fromLenient</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;domain)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net"><CODE>InternetDomainName</CODE></A> after lenient
 validation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#hashCode()">hashCode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a hash code value for the object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#hasParent()">hasParent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether this domain is composed of two or more parts.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#hasPublicSuffix()">hasPublicSuffix</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether this domain name ends in a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>, including if it is a public suffix itself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">isPublicSuffix</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether this domain name represents a <i>public suffix</i>, as
 defined by the Mozilla Foundation's
 <a href="http://publicsuffix.org/">Public Suffix List</a> (PSL).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#isTopPrivateDomain()">isTopPrivateDomain</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether this domain name is composed of exactly one subdomain
 component followed by a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#isUnderPublicSuffix()">isUnderPublicSuffix</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether this domain name ends in a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>, while not being a public suffix itself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#isValidLenient(java.lang.String)">isValidLenient</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Indicates whether the argument is a syntactically valid domain name after
 lenient validation.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#name()">name</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the domain name, normalized to all lower case.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#parent()">parent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an <code>InternetDomainName</code> that is the immediate ancestor of
 this one; that is, the current domain with the leftmost part removed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/google/common/collect/ImmutableList.html" title="class in com.google.common.collect">ImmutableList</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#parts()">parts</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the individual components of this domain name, normalized to all
 lower case.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#publicSuffix()">publicSuffix</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A> portion of the
 domain name, or <code>null</code> if no public suffix is present.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#topPrivateDomain()">topPrivateDomain</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the portion of this domain name that is one level beneath the
 public suffix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/common/net/InternetDomainName.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a string representation of the object.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="fromLenient(java.lang.String)"><!-- --></A><H3>
fromLenient</H3>
<PRE>
public static <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A> <B>fromLenient</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;domain)</PRE>
<DL>
<DD>Returns an instance of <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net"><CODE>InternetDomainName</CODE></A> after lenient
 validation.  Specifically, validation against <a
 href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>
 ("Internationalizing Domain Names in Applications") is skipped, while
 validation against <a
 href="http://www.ietf.org/rfc/rfc1035.txt">RFC 1035</a> is relaxed in
 the following ways:
 <ul>
 <li>Any part containing non-ASCII characters is considered valid.
 <li>Underscores ('_') are permitted wherever dashes ('-') are permitted.
 <li>Parts other than the final part may start with a digit.
 </ul>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>domain</CODE> - A domain name (not IP address)
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>name</code> is not syntactically valid
     according to <A HREF="../../../../com/google/common/net/InternetDomainName.html#isValidLenient(java.lang.String)"><CODE>isValidLenient(java.lang.String)</CODE></A><DT><B>Since:</B></DT>
  <DD>8 (previously named <code>from</code>)</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="name()"><!-- --></A><H3>
name</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>name</B>()</PRE>
<DL>
<DD>Returns the domain name, normalized to all lower case.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="parts()"><!-- --></A><H3>
parts</H3>
<PRE>
public <A HREF="../../../../com/google/common/collect/ImmutableList.html" title="class in com.google.common.collect">ImmutableList</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>parts</B>()</PRE>
<DL>
<DD>Returns the individual components of this domain name, normalized to all
 lower case. For example, for the domain name <code>mail.google.com</code>, this
 method returns the list <code>["mail", "google", "com"]</code>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPublicSuffix()"><!-- --></A><H3>
isPublicSuffix</H3>
<PRE>
public boolean <B>isPublicSuffix</B>()</PRE>
<DL>
<DD>Indicates whether this domain name represents a <i>public suffix</i>, as
 defined by the Mozilla Foundation's
 <a href="http://publicsuffix.org/">Public Suffix List</a> (PSL). A public
 suffix is one under which Internet users can directly register names, such
 as <code>com</code>, <code>co.uk</code> or <code>pvt.k12.wy.us</code>. Examples of domain
 names that are <i>not</i> public suffixes include <code>google</code>, <code>google.com</code> and <code>foo.co.uk</code>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD><code>true</code> if this domain name appears exactly on the public
     suffix list<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="hasPublicSuffix()"><!-- --></A><H3>
hasPublicSuffix</H3>
<PRE>
public boolean <B>hasPublicSuffix</B>()</PRE>
<DL>
<DD>Indicates whether this domain name ends in a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>, including if it is a public suffix itself. For example,
 returns <code>true</code> for <code>www.google.com</code>, <code>foo.co.uk</code> and
 <code>com</code>, but not for <code>google</code> or <code>google.foo</code>. This is
 the recommended method for determining whether a domain is potentially an
 addressable host.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="publicSuffix()"><!-- --></A><H3>
publicSuffix</H3>
<PRE>
public <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A> <B>publicSuffix</B>()</PRE>
<DL>
<DD>Returns the <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A> portion of the
 domain name, or <code>null</code> if no public suffix is present.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="isUnderPublicSuffix()"><!-- --></A><H3>
isUnderPublicSuffix</H3>
<PRE>
public boolean <B>isUnderPublicSuffix</B>()</PRE>
<DL>
<DD>Indicates whether this domain name ends in a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>, while not being a public suffix itself. For example,
 returns <code>true</code> for <code>www.google.com</code>, <code>foo.co.uk</code> and
 <code>bar.ca.us</code>, but not for <code>google</code>, <code>com</code>, or <code>google.foo</code>.

 <p><b>Warning:</b> a <code>false</code> result from this method does not imply
 that the domain does not represent an addressable host, as many public
 suffixes are also addressable hosts. Use <A HREF="../../../../com/google/common/net/InternetDomainName.html#hasPublicSuffix()"><CODE>hasPublicSuffix()</CODE></A> for
 that test.

 <p>This method can be used to determine whether it will probably be
 possible to set cookies on the domain, though even that depends on
 individual browsers' implementations of cookie controls. See
 <a href="http://www.ietf.org/rfc/rfc2109.txt">RFC 2109</a> for details.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="isTopPrivateDomain()"><!-- --></A><H3>
isTopPrivateDomain</H3>
<PRE>
public boolean <B>isTopPrivateDomain</B>()</PRE>
<DL>
<DD>Indicates whether this domain name is composed of exactly one subdomain
 component followed by a <A HREF="../../../../com/google/common/net/InternetDomainName.html#isPublicSuffix()">public suffix</A>. For
 example, returns <code>true</code> for <code>google.com</code> and <code>foo.co.uk</code>,
 but not for <code>www.google.com</code> or <code>co.uk</code>.

 <p><b>Warning:</b> A <code>true</code> result from this method does not imply
 that the domain is at the highest level which is addressable as a host, as
 many public suffixes are also addressable hosts. For example, the domain
 <code>bar.uk.com</code> has a public suffix of <code>uk.com</code>, so it would
 return <code>true</code> from this method. But <code>uk.com</code> is itself an
 addressable host.

 <p>This method can be used to determine whether a domain is probably the
 highest level for which cookies may be set, though even that depends on
 individual browsers' implementations of cookie controls. See
 <a href="http://www.ietf.org/rfc/rfc2109.txt">RFC 2109</a> for details.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="topPrivateDomain()"><!-- --></A><H3>
topPrivateDomain</H3>
<PRE>
public <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A> <B>topPrivateDomain</B>()</PRE>
<DL>
<DD>Returns the portion of this domain name that is one level beneath the
 public suffix. For example, for <code>x.adwords.google.co.uk</code> it returns
 <code>google.co.uk</code>, since <code>co.uk</code> is a public suffix.

 <p>If <A HREF="../../../../com/google/common/net/InternetDomainName.html#isTopPrivateDomain()"><CODE>isTopPrivateDomain()</CODE></A> is true, the current domain name
 instance is returned.

 <p>This method should not be used to determine the topmost parent domain
 which is addressable as a host, as many public suffixes are also
 addressable hosts. For example, the domain <code>foo.bar.uk.com</code> has
 a public suffix of <code>uk.com</code>, so it would return <code>bar.uk.com</code>
 from this method. But <code>uk.com</code> is itself an addressable host.

 <p>This method can be used to determine the probable highest level parent
 domain for which cookies may be set, though even that depends on individual
 browsers' implementations of cookie controls.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if this domain does not end with a
     public suffix<DT><B>Since:</B></DT>
  <DD>6</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="hasParent()"><!-- --></A><H3>
hasParent</H3>
<PRE>
public boolean <B>hasParent</B>()</PRE>
<DL>
<DD>Indicates whether this domain is composed of two or more parts.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="parent()"><!-- --></A><H3>
parent</H3>
<PRE>
public <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A> <B>parent</B>()</PRE>
<DL>
<DD>Returns an <code>InternetDomainName</code> that is the immediate ancestor of
 this one; that is, the current domain with the leftmost part removed. For
 example, the parent of <code>www.google.com</code> is <code>google.com</code>.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if the domain has no parent, as determined
     by <A HREF="../../../../com/google/common/net/InternetDomainName.html#hasParent()"><CODE>hasParent()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="child(java.lang.String)"><!-- --></A><H3>
child</H3>
<PRE>
public <A HREF="../../../../com/google/common/net/InternetDomainName.html" title="class in com.google.common.net">InternetDomainName</A> <B>child</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;leftParts)</PRE>
<DL>
<DD>Creates and returns a new <code>InternetDomainName</code> by prepending the
 argument and a dot to the current name. For example, <code>InternetDomainName.fromLenient("foo.com").child("www.bar")</code> returns a new
 <code>InternetDomainName</code> with the value <code>www.bar.foo.com</code>.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</A></CODE> - if leftParts is null
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the resulting name is not valid</DL>
</DD>
</DL>
<HR>

<A NAME="isValidLenient(java.lang.String)"><!-- --></A><H3>
isValidLenient</H3>
<PRE>
public static boolean <B>isValidLenient</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Indicates whether the argument is a syntactically valid domain name after
 lenient validation. Specifically, validation against <a
 href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>
 ("Internationalizing Domain Names in Applications") is skipped.

 <p>The follow two code snippets are equivalent:

 <pre>   <code>if (InternetDomainName.isValidLenient(name)) {
     domainName = InternetDomainName.fromLenient(name);
   } else {
     domainName = DEFAULT_DOMAIN;
   }</code></pre>

 <pre>   <code>try {
     domainName = InternetDomainName.fromLenient(name);
   } catch (IllegalArgumentException e) {
     domainName = DEFAULT_DOMAIN;
   }</code></pre>
<P>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>8 (previously named <code>isValid</code>)</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">java.lang.Object</A></CODE></B></DD>
<DD>Returns a string representation of the object. In general, the
 <code>toString</code> method returns a string that
 "textually represents" this object. The result should
 be a concise but informative representation that is easy for a
 person to read.
 It is recommended that all subclasses override this method.
 <p>
 The <code>toString</code> method for class <code>Object</code>
 returns a string consisting of the name of the class of which the
 object is an instance, the at-sign character `<code>@</code>', and
 the unsigned hexadecimal representation of the hash code of the
 object. In other words, this method returns a string equal to the
 value of:
 <blockquote>
 <pre>
 getClass().getName() + '@' + Integer.toHexString(hashCode())
 </pre></blockquote>
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a string representation of the object.</DL>
</DD>
</DL>
<HR>

<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(<FONT SIZE="-1"><A HREF="http://jsr-305.googlecode.com/svn/trunk/javadoc/javax/annotation/Nullable.html?is-external=true" title="class or interface in javax.annotation">@Nullable</A></FONT>
                      <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;object)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">java.lang.Object</A></CODE></B></DD>
<DD>Indicates whether some other object is "equal to" this one.
 <p>
 The <code>equals</code> method implements an equivalence relation
 on non-null object references:
 <ul>
 <li>It is <i>reflexive</i>: for any non-null reference value
     <code>x</code>, <code>x.equals(x)</code> should return
     <code>true</code>.
 <li>It is <i>symmetric</i>: for any non-null reference values
     <code>x</code> and <code>y</code>, <code>x.equals(y)</code>
     should return <code>true</code> if and only if
     <code>y.equals(x)</code> returns <code>true</code>.
 <li>It is <i>transitive</i>: for any non-null reference values
     <code>x</code>, <code>y</code>, and <code>z</code>, if
     <code>x.equals(y)</code> returns <code>true</code> and
     <code>y.equals(z)</code> returns <code>true</code>, then
     <code>x.equals(z)</code> should return <code>true</code>.
 <li>It is <i>consistent</i>: for any non-null reference values
     <code>x</code> and <code>y</code>, multiple invocations of
     <code>x.equals(y)</code> consistently return <code>true</code>
     or consistently return <code>false</code>, provided no
     information used in <code>equals</code> comparisons on the
     objects is modified.
 <li>For any non-null reference value <code>x</code>,
     <code>x.equals(null)</code> should return <code>false</code>.
 </ul>
 <p>
 The <code>equals</code> method for class <code>Object</code> implements
 the most discriminating possible equivalence relation on objects;
 that is, for any non-null reference values <code>x</code> and
 <code>y</code>, this method returns <code>true</code> if and only
 if <code>x</code> and <code>y</code> refer to the same object
 (<code>x == y</code> has the value <code>true</code>).
 <p>
 Note that it is generally necessary to override the <code>hashCode</code>
 method whenever this method is overridden, so as to maintain the
 general contract for the <code>hashCode</code> method, which states
 that equal objects must have equal hash codes.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>object</CODE> - the reference object with which to compare.
<DT><B>Returns:</B><DD><code>true</code> if this object is the same as the obj
          argument; <code>false</code> otherwise.<DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang"><CODE>Object.hashCode()</CODE></A>, 
<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><CODE>HashMap</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">java.lang.Object</A></CODE></B></DD>
<DD>Returns a hash code value for the object. This method is
 supported for the benefit of hash tables such as those provided by
 <A HREF="http://download.oracle.com/javase/6/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><CODE>HashMap</CODE></A>.
 <p>
 The general contract of <code>hashCode</code> is:
 <ul>
 <li>Whenever it is invoked on the same object more than once during
     an execution of a Java application, the <code>hashCode</code> method
     must consistently return the same integer, provided no information
     used in <code>equals</code> comparisons on the object is modified.
     This integer need not remain consistent from one execution of an
     application to another execution of the same application.
 <li>If two objects are equal according to the <code>equals(Object)</code>
     method, then calling the <code>hashCode</code> method on each of
     the two objects must produce the same integer result.
 <li>It is <em>not</em> required that if two objects are unequal
     according to the <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang"><CODE>Object.equals(java.lang.Object)</CODE></A>
     method, then calling the <code>hashCode</code> method on each of the
     two objects must produce distinct integer results.  However, the
     programmer should be aware that producing distinct integer results
     for unequal objects may improve the performance of hash tables.
 </ul>
 <p>
 As much as is reasonably practical, the hashCode method defined by
 class <code>Object</code> does return distinct integers for distinct
 objects. (This is typically implemented by converting the internal
 address of the object into an integer, but this implementation
 technique is not required by the
 Java<font size="-2"><sup>TM</sup></font> programming language.)
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A></CODE> in class <CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>a hash code value for this object.<DT><B>See Also:</B><DD><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang"><CODE>Object.equals(java.lang.Object)</CODE></A>, 
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/System.html?is-external=true#identityHashCode(java.lang.Object)" title="class or interface in java.lang"><CODE>System.identityHashCode(java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/google/common/net/InetAddresses.TeredoInfo.html" title="class in com.google.common.net"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/google/common/net/InternetDomainName.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="InternetDomainName.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
